#include <stdio.h>
#define MAXS 15

void StringCount(char s[]);
// void ReadString( char s[] ); /* 由裁判实现，略去不表 */

int main()
{
    char s[MAXS] = "aZ & 09 Az ";

    // ReadString(s);
    StringCount(s);

    return 0;
}

void StringCount(char s[])
{
    int letter = 0, blank = 0, digit = 0, other = 0;
    int i = 0;
    int len = strlen(s);
    while (i<len)
    {
        if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))
            letter++;
        else if (s[i] >= '0' && s[i] <= '9')
            digit++;
        else if (s[i] == ' ' || s[i] == '\n')
            blank++;
        else
            other++;
        i++;
    }

    printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
}

// error:评测时，其他字符的边界未通过。
// 已解决：尽量不要使用while(ch)来判定字符串结束，如果在字符串中有其他字符，会误判。
//具体的导致误判的字符是什么，我还未明确。